package com.ruoyi.tws.api.domain;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.MyPlusEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

import java.util.Date;

/**
 * 司机信息对象 tws_driver
 *  (实体类不要改名,com.ruoyi.common.wlhyupload.WlhyUpload中用类名判断单据类型)
 */
@Data
@ToString
@EqualsAndHashCode
@NoArgsConstructor
@Accessors(chain = true)
@TableName("tws_driver")
public class Driver extends MyPlusEntity {
    private static final long serialVersionUID = 1L;

    /** 主键 */
    @TableId
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    /** 姓名 */
    @Excel(name = "姓名")
    private String driverName;

    /** 身份证号 */
    @Excel(name = "身份证号")
    private String drivingLicense;

    /** 手机号 */
    @Excel(name = "手机号")
    private String telephone;

    /** 从业资格证号 */
    @Excel(name = "从业资格证号")
    private String qualificationCertificate;

    /** 准驾车型 */
    @Excel(name = "准驾车型")
    private String vehicleClass;

    /** 驾驶证发证机关 */
    @Excel(name = "驾驶证发证机关")
    private String issuingOrganizations;

    /** 驾驶证有效期自 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "驾驶证有效期自", width = 30, dateFormat = "yyyy-MM-dd")
    private Date validPeriodFrom;

    /** 驾驶证有效期至 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "驾驶证有效期至", width = 30, dateFormat = "yyyy-MM-dd")
    private Date validPeriodTo;

    /** 密码 */
    private String password;

    /** 助记码 */
    @Excel(name = "助记码")
    private String code;

    /** 性别 */
    @Excel(name = "性别")
    private String sex;

    /** 年龄 */
    @Excel(name = "年龄")
    private Integer age;

    /** 认证状态 0：未认证 1：审核中 2：已认证 3：认证失败 */
    @Excel(name = "认证状态 0：未认证 1：审核中 2：已认证 3：认证失败")
    private String isCert;

    /** 1：正常 2：禁用 */
    @Excel(name = "1：正常 2：禁用")
    private String state;

    /** 是否已上传 0未上传 1已上传 */
    private String isSendToPro;

    /** 身份证人像面照片 */
    private String idCardImg1;

    /** 身份证国徽面照片 */
    private String idCardImg2;

    /** 驾驶证照片 */
    private String driverCardImg;

    /** 从业资格证照片 */
    private String qcImg;

    /** 头像 */
    private String driverAvatar;

}
